export interface BaseCard {
  /**
   * 卡牌ID
   **/
  Id: number;
  /**
   * 卡牌名称
   **/
  Name: string;
  /**
   * 卡牌描述
   **/
  Desc: string;
  /**
   * 卡牌故事
   **/
  Story: string;
  /**
   * 卡牌等级
   **/
  Rank: number;
  /**
   * 生命值
   **/
  HP: number;
  /**
   * 攻击力
   **/
  ATK: number;
  /**
   * 防御力
   **/
  DEF: number;
  /**
   * 速度
   **/
  SPD: number;
  /**
   * 技能1
   **/
  SKL1: number;
  /**
   * 技能2
   **/
  SKL2: number;
  /**
   * 技能3 - 被动技能
   **/
  SKL3: number;
}

export interface LineupCard extends BaseCard {
  /**
   * 命中
   **/
  HIT: number;
  /**
   * 闪避
   **/
  PRY: number;
  /**
   * 暴击
   **/
  CRIT: number;
  /**
   * 忽略暴击
   **/
  CRIRES: number;
  /**
   * 伤害加深
   **/
  DMGADD: number;
  /**
   * 伤害减免
   **/
  DMGRED: number;
  /**
   * 位置
   **/
  Position: [number, number];
  /**
   * 眩晕
   **/
  STUN: number;
  /**
   * 免晕
   **/
  STUNRES: number;
}

export interface BattleAttr {
  /**
   * 生命值
   **/
  HP: number;
  /**
   * 攻击力
   **/
  ATK: number;
  /**
   * 防御力
   **/
  DEF: number;
  /**
   * 速度
   **/
  SPD: number;
  /**
   * 命中
   **/
  HIT: number;
  /**
   * 闪避
   **/
  PRY: number;
  /**
   * 暴击
   **/
  CRIT: number;
  /**
   * 忽略暴击
   **/
  CRIRES: number;
  /**
   * 伤害加深
   **/
  DMGADD: number;
  /**
   * 伤害减免
   **/
  DMGRED: number;
  /**
   * 眩晕
   **/
  STUN: number;
  /**
   * 免疫眩晕
   **/
  STUNRES: number;
  /**
   * 怒气
   **/
  ANGRY: number;
  /**
   * 控制
   **/
  CTRL: number;
}

export interface Buff {
  /**
   * 效果 1.攻击增加 2.攻击减少 3.气血增加 4.气血减少 5.防御增加 6防御减少 7.速度增加 8.速度减少
   * 9.命中增加 10.命中减少 11.闪避增加 12.闪避减少 13.暴击增加 14.暴击减少 15.忽略暴击增加 16.忽略暴击减少
   * 17.伤害增加 18.伤害减少 19.眩晕增加 20.眩晕减少 21.怒气增加 22.怒气减少 23.眩晕 24.免晕 25.吸血
   */
  EFF: number;
  /**
   * 效果参数
   **/
  PAR: number;
  /**
   * 技能持续回合
   **/
  RND: number;
}

export interface BattleCard extends LineupCard {
  /**
   * 卡牌来源
   **/
  from: string;
  /**
   * 战斗属性
   **/
  battle: BattleAttr;

  /**
   * buff列表
   **/
  buff: Buff[];
}
